Pada tingkat C, objek Ruby diwakili oleh struktur yang memisahkan data dari perilaku melalui hierarki berbasis pointer. Pointer klass menghubungkan sebuah instans ke "kelas terkait"-nya (tempat metode berada), sementara pointer super menghubungkan kelas ke nenek moyangnya, menciptakan peta struktural yang digunakan VM Ruby untuk menyelesaikan pewarisan.
1. Pointer klass & Flag
Setiap objek Ruby berisi bagian kepala dengan pointer klass dan bitmask dari flag. Flag-flag ini mengidentifikasi status internal objek, seperti menandai "kelas virtual" yang dibuat secara otomatis dengan flag 'V' untuk menangani penugasan metode singleton.
2. Memisahkan Status (Gambar 24.1)
Sebuah instans seperti lucille menyimpan variabel instans uniknya sendiri variabel instans, tetapi tidak memiliki metode miliknya sendiri. Pointer klass mengarahkan VM ke tabel metode objek kelas Guitar kelas Guitar.
3. Rantai Pewarisan
Ketika lucille.play() dipanggil, Ruby mengikuti pointer klass Jika metode tidak ditemukan di Guitar, maka ia mengikuti pointer super ke Object, memberikan akses ke clone atau dup.